#ifndef AI_UTILS_H
#define AI_UTILS_H

#include <opencv2/opencv.hpp>
#include <vector>


// Function to compute the length of a contour
double getContourLength(const std::vector<cv::Point>& contour);

// Function to compute polygon from mask
std::vector<cv::Point> computePolygonFromMask(const cv::Mat& mask);

// int main() {
//     // Example usage
//     // Create a binary mask
//     cv::Mat mask = cv::Mat::zeros(200, 200, CV_8UC1);
//     cv::rectangle(mask, cv::Point(50, 50), cv::Point(150, 150), 255, -1);

//     // Compute the polygon from the mask
//     std::vector<cv::Point> polygon = computePolygonFromMask(mask);

//     // Draw the polygon on an image
//     cv::Mat outputImage = cv::Mat::zeros(mask.size(), CV_8UC3);
//     if (!polygon.empty()) {
//         std::vector<std::vector<cv::Point>> polygons = { polygon };
//         cv::polylines(outputImage, polygons, true, cv::Scalar(0, 255, 0), 2);
//     }

//     // Display the result
//     cv::imshow("Polygon", outputImage);
//     cv::waitKey(0);

//     return 0;
// }

#endif
